package br.com.vti.sisp_sicrim.antigo.controller.tela;

import java.text.SimpleDateFormat;
import java.util.Arrays;
import java.util.Calendar;

import br.com.caelum.vraptor.Result;
import br.com.vti.sisp_sicrim.antigo.controller.programa.FuncoesGerais;
import br.com.vti.sisp_sicrim.antigo.controller.programa.Scrp110a;
import br.com.vti.sisp_sicrim.antigo.model.SicTabelas;
import br.com.vti.sisp_sicrim.antigo.util.Sessao;
import br.com.vti.sisp_sicrim.antigo.util.UtilBean;

/**
 * Classe responsavel por encapsular o tratamento e as consistencias da tela Scrm120a
 * 
 * @author Incode - Data: mai/2014
 * 
 */
public class Scrm120a {
	private boolean enviada = false;
	private String pagina = "/resources/antigo/jsp/Scrm120a.jsp";
	private String jVersaoj;
	private String dataCorrente;
	private String jFuncaoj;
	private String horaCorrente;
	private String jChave;
	private int jAlarm;
	private String jDelegacia;
	private String jDescMunicipio;
	private int jMunicipio;
	private String jUfRegGeral;
	private long jregGeral;
	private String jDataRegistro;
	private long jNoAutos;
	private String jDataAtuacao;
	private long jIdentidade;
	private String jNomeCompleto;
	private String jNomeAnterior;
	private String jPai;
	private String jMae;
	private int jSexo;
	private String jdataNasc;
	private long jCpf;
	private String jNaturalidade;
	private int jCodMunNascimento;
	private String jUfNascimento;
	private String jDocApresentado;
	private long jNumDocApresentado;
	private String jOrgaoExpUf;
	private String jProfissao;
	private int jInstrucao;
	private String jAvRua;
	private int jNumero;
	private String jBairro;
	private int jMunEndereco;
	private String jUfEndereco;
	private int jCep;
	private String jComplemento;
	private String jStatus;
	private String jDescreg;
	private String jEmpresaj;
	private String jProgramaj;
	private String[] jAlcunha = new String[5];
	private String mensagem = "";
	private String funcao = "0";
	private String campofocus = "jdelegacia";
	private String navegar = "";
	public Boolean temMensagem = false;
	private Result result;
	private Sessao sessao;

	FuncoesGerais funcoes = new FuncoesGerais();
	// Classes views
	SicTabelas vwTabele = new SicTabelas();

	// Classes includes

	public Scrm120a() {
		inicializar(false);
	}

	public Scrm120a(boolean primeiraVez, Sessao sessao) {
		this.sessao = sessao;
		inicializar(primeiraVez);
	}

	public void inicializar(boolean primeiraVez) {
		if (primeiraVez) {
			jVersaoj = "";
			dataCorrente = "";
			jFuncaoj = "";
			jChave = "";
			jAlarm = 0;
			jDelegacia = "";
			jDescMunicipio = "";
			jMunicipio = 0;
			jUfRegGeral = "";
			jregGeral = 0;
			jDataRegistro = "0";
			jNoAutos = 0;
			jDataAtuacao = "0";
			jIdentidade = 0;
			jNomeCompleto = "";
			jNomeAnterior = "";
			jPai = "";
			jMae = "";
			Arrays.fill(jAlcunha, "");
			jSexo = 0;
			jdataNasc = "";
			jCpf = 0;
			jNaturalidade = "";
			jCodMunNascimento = 0;
			jUfNascimento = "";
			jDocApresentado = "";
			jNumDocApresentado = 0;
			jOrgaoExpUf = "";
			jProfissao = "";
			jInstrucao = 0;
			jAvRua = "";
			jNumero = 0;
			jBairro = "";
			jMunEndereco = 0;
			jUfEndereco = "";
			jCep = 0;
			jComplemento = "";
			jStatus = "";
			jDescreg = "";
			jEmpresaj = "";
			jProgramaj = "";
			jEmpresaj = sessao.getScrg001().getWEmpresaw();
			jFuncaoj = sessao.getScrg001().getWFuncaow();
			jProgramaj = sessao.getScrg001().getWProgramaw();
			jVersaoj = sessao.getScrg001().getWVersaow();
		}
		dataCorrente = new SimpleDateFormat("dd/MM/yyyy").format(Calendar.getInstance().getTime()); // *DATE
		horaCorrente = new SimpleDateFormat("HH:mm:ss").format(Calendar.getInstance().getTime()); // *TIMX
	}

	public boolean receberTela(boolean primeiraVez, Result result) throws Exception {
		// faz o tratamento das criticas necessarias para os dados da tela
		// recebida
		this.result = result;
		temMensagem = false;
		if (!primeiraVez) {
			return validar();
		} else {
			return true;
		}
	}

	public void enviarTela(boolean primeiraVez, Result result, String origem) {
		this.enviada = true;
		// rotina para enviar a tela
		// caso esteja setado valores para acoesFinais, executa as classes
		// correspondentes
		this.result = result;
		if (UtilBean.acoesFinais != null && !UtilBean.acoesFinais.isEmpty()) {
			UtilBean.processaAcao();
		} else {
			enviar(result, origem);
		}
	}

	public void enviar(Result result, String origem) {
		// redicionar para o jsp correspondente
		UtilBean.redireciona(pagina, result, origem);
	}

	public void enviarMensagem(String campo, String mensagem) {
		// formatar a mensagem de erro, posicionar no campo informa
		if (campo != null) {
			campofocus = campo;
		} else {
			campofocus = "";
		}
		this.mensagem = mensagem;
		temMensagem = true;
		// enviar(result, origem);
	}

	public boolean validar() throws Exception {
		// validar os campos recebidos da tela
		UtilBean.funcao = this.funcao;
		ValidarFuncao();
		if (temMensagem) {
			return false;
		}
		ValidarWdelegacia();
		if (temMensagem) {
			return false;
		}
		ValidarjMunicipio();
		if (temMensagem) {
			return false;
		}
		ValidarjUfRegGeral();
		if (temMensagem) {
			return false;
		}
		ValidarWregGeral();
		if (temMensagem) {
			return false;
		}
		ValidarWdataRegistro();
		if (temMensagem) {
			return false;
		}
		ValidarWdataAtuacao();
		if (temMensagem) {
			return false;
		}
		ValidarWidentidade();
		if (temMensagem) {
			return false;
		}
		ValidarjNomeCompleto();
		if (temMensagem) {
			return false;
		}
		ValidarWpai();
		if (temMensagem) {
			return false;
		}
		ValidarjMae();
		if (temMensagem) {
			return false;
		}
		ValidarWsexo();
		if (temMensagem) {
			return false;
		}
		ValidarWdataNasc();
		if (temMensagem) {
			return false;
		}
		ValidarWnaturalidade();
		if (temMensagem) {
			return false;
		}
		ValidarWufNascimento();
		if (temMensagem) {
			return false;
		}
		ValidarWdocApresentado();
		if (temMensagem) {
			return false;
		}
		ValidarWorgaoExpUf();
		if (temMensagem) {
			return false;
		}
		ValidarWinstrucao();
		if (temMensagem) {
			return false;
		}
		ValidarWavRua();
		if (temMensagem) {
			return false;
		}
		ValidarWbairro();
		if (temMensagem) {
			return false;
		}
		ValidarWufEndereco();
		if (temMensagem) {
			return false;
		}
		ValidarjStatus();
		if (temMensagem) {
			return false;
		}

		sessao.getScrg001().setWEmpresaw(this.jEmpresaj);
		sessao.getScrg001().setWFuncaow(this.jFuncaoj);
		sessao.getScrg001().setWProgramaw(this.jProgramaj);
		sessao.getScrg001().setWVersaow(this.jVersaoj);
		return true;
	}

	private void ValidarFuncao() {
		// Consist�ncia F00funcao
		if (!((UtilBean.funcao.equals(UtilBean.ctt_retorna) || UtilBean.funcao.equals(UtilBean.ctt_anterior) || UtilBean.funcao.equals(UtilBean.ctt_proxima) || UtilBean.funcao.equals(UtilBean.ctt_processa)))) {
			enviarMensagem(null, "Tecla invalida");
			return;
		}
		if (UtilBean.funcao.equals(UtilBean.ctt_retorna)) {
			// dao.rollback();
			Scrp110a scrp110a = new Scrp110a(result, sessao);
			scrp110a.executar(null, null, null, null, null, null);
		}
	}

	private void ValidarWdelegacia() {
		// Consist�ncia F00#DELEGACIA
		if (jDelegacia.trim().equals("")) {
			enviarMensagem("jdelegacia", "Campo de preenchimento obrigatorio");
			return;
		}
	}

	private void ValidarjMunicipio() {
		// Consist�ncia F00#MUNICIPIO
		if (jMunicipio == 0) {
			enviarMensagem("jmunicipio", "Campo de preenchimento obrigatorio");
			return;
		}
	}

	private void ValidarjUfRegGeral() {
		// Consist�ncia F00#UF-REG-GERAL
		if (jUfRegGeral.trim().equals("")) {
			enviarMensagem("jufreggeral", "Campo de preenchimento obrigatorio");
			return;
		}
		// Par�grafo: fd1()
		vwTabele.consultaCodigoTabelaChaveAlfaAcesso(9, jUfRegGeral);
		if (vwTabele.registrosProcessados() == 0) {
			enviarMensagem("jufreggeral", "UF nao cadastrada no sistema");
			return;
		}
		vwTabele.fecha();
		// Par�grafo: fd2()
		if (vwTabele.consultaCodigoTabelaCodigoElemChaveAlfaAcesso(1, (long) jMunicipio, jUfRegGeral)) {
			jDescMunicipio = vwTabele.getDescricaoElem();
		}
		vwTabele.fecha();
		if (vwTabele.registrosProcessados() == 0) {
			enviarMensagem("jmunicipio", "Municipio informado nao pertence a UF informada");
			return;
		}
	}

	private void ValidarWregGeral() {
		// Consist�ncia F00#REG_GERAL
	}

	// IF & = 0
	// REINPUT "Campo de preenchimento obrigatorio" MARK *& ALARM
	private void ValidarWdataRegistro() {
		// Consist�ncia F00#DATA-REGISTRO
		String wData;
		String wDataInv;
		int wDataAtual = UtilBean.obtemDataCorrente();

		wData = UtilBean.preencheDDMMYYYY(jDataRegistro);
		wDataInv = UtilBean.subStr(wData, 0, 8);
		wDataInv = UtilBean.subStr(wData, 4, 4) + UtilBean.subStr(wData, 2, 2) + UtilBean.subStr(wData, 0, 2);
		if (jDataRegistro.trim().equals("0")) {
			enviarMensagem("jdataregistro", "Campo de preenchimento obrigatorio");
			return;
		}
		if (Integer.parseInt(UtilBean.subStr(wData, 0, 2)) == 0 || Integer.parseInt(UtilBean.subStr(wData, 0, 2)) > 31) {
			enviarMensagem("jdataregistro", "Dia invalido");
			return;
		}
		if (Integer.parseInt(UtilBean.subStr(wData, 2, 2)) == 0 || Integer.parseInt(UtilBean.subStr(wData, 2, 2)) > 12) {
			enviarMensagem("jdataregistro", "Mes invalido");
			return;
		}
		if (Integer.parseInt(UtilBean.subStr(wData, 4, 4)) == 0 || Integer.parseInt(UtilBean.subStr(wData, 4, 4)) < 1800) {
			enviarMensagem("jdataregistro", "Ano invalido");
			return;
		}
		if (Integer.parseInt(wDataInv) > wDataAtual) {
			enviarMensagem("jdataregistro", "Data invalida");
			return;
		}
	}

	private void ValidarWdataAtuacao() {
		// Consist�ncia F00#DATA-ATUACAO
		String wAutu;
		int wIndex;
		String wChave;
		String wChave1;
		String wDatao;
		String wDataInv;
		int wDataAtual = UtilBean.obtemDataCorrente();
		if (!jDataAtuacao.trim().equals("0")) {
			wDatao = UtilBean.preencheDDMMYYYY(jDataAtuacao);
			wDataInv = UtilBean.subStr(wDatao, 0, 8);
			wDataInv = UtilBean.subStr(wDatao, 4, 4) + UtilBean.subStr(wDatao, 2, 2) + UtilBean.subStr(wDatao, 0, 2);
			if (Integer.parseInt(UtilBean.subStr(wDatao, 0, 2)) == 0 || Integer.parseInt(UtilBean.subStr(wDatao, 0, 2)) > 31) {
				enviarMensagem("jdataatuacao", "Dia invalido");
				return;
			}
			if (Integer.parseInt(UtilBean.subStr(wDatao, 2, 2)) == 0 || Integer.parseInt(UtilBean.subStr(wDatao, 2, 2)) > 12) {
				enviarMensagem("jdataatuacao", "Mes invalido");
				return;
			}
			if (Integer.parseInt(UtilBean.subStr(wDatao, 4, 4)) == 0) {
				enviarMensagem("jdataatuacao", "Ano invalido");
				return;
			}
			if (Integer.parseInt(UtilBean.subStr(wDatao, 4, 4)) < 1800) {
				enviarMensagem("jdataatuacao", "Ano invalido");
				return;
			}
			if (Integer.parseInt(wDataInv) > wDataAtual) {
				enviarMensagem("jdataatuacao", "Data invalida");
				return;
			}
		}
	}

	private void ValidarWidentidade() {
		// Consist�ncia F00#IDENTIDADE
	}

	// DEFINE DATA
	// LOCAL USING SICLCAD
	// END-DEFINE
	// IF & = 0
	// REINPUT " Campo de preenchimento obrigatorio" MARK *& ALARM
	// END-IF
	private void ValidarjNomeCompleto() {
		// Consist�ncia F00#NOME-COMPLETO
		if (jFuncaoj.contains("INCLUSAO")) // VERIFICAR CASO #FUNCAO#
		// IF #CHAVE = "S"
		{
			jAlarm = 8;
			if (jNomeCompleto.trim().equals("")) {
				enviarMensagem("jnomecompleto", " Campo de preenchimento obrigatorio");
				return;
			}
			funcoes.scrsvnom("jnomecompleto", jNomeCompleto);
			if (!funcoes.camret.equals("")) {
				enviarMensagem(funcoes.camret, funcoes.msgret);
				return;
			}
		}
		if (jFuncaoj.contains("ALTERACAO")) { // VERIFICAR CASO #FUNCAO#
			jAlarm = 9;
			if (!jNomeCompleto.trim().equals("")) {
				funcoes.scrsvnom("jnomecompleto", jNomeCompleto);
				if (!funcoes.camret.equals("")) {
					enviarMensagem(funcoes.camret, funcoes.msgret);
					return;
				}
			}
		}
	}

	private void ValidarWpai() {
		// Consist�ncia F00#PAI
		if (!((jPai.trim().equals("") || jPai.equals("*")))) {
			if (jFuncaoj.equals("INCLUSAO")) {
				jAlarm = 10;
			} else {
				jAlarm = 11;
			}
			funcoes.scrsvnom("jpai", jPai);
			if (!funcoes.camret.equals("")) {
				enviarMensagem(funcoes.camret, funcoes.msgret);
				return;
			}
		}
	}

	private void ValidarjMae() {
		// Consist�ncia F00#MAE
		String jMae0;
		// 3 #MAE000 (A1/1:12)
		jMae0 = jMae;
		// IF #CHAVE = "S"
		if (jFuncaoj.contains("INCLUSAO")) { // verificar #FUNCAO#
			jAlarm = 3;
			if (jMae.trim().equals("")) {
				enviarMensagem("jmae", "Se nao houver Nome-Mae - informe 1 asterisco");
				return;
			}
			if (UtilBean.subStr(jMae0, 0, 1).equals("*"))
			// IF #MAE00 NE ""
			// REINPUT "Preencha somente com 12 asteriscos" MARK *& ALARM
			{
				if (!UtilBean.subStr(jMae0, 1, 59).trim().equals(""))
				// END-IF
				{
					enviarMensagem("jmae", "Preencha somente com 1 asterisco");
					return;
				}
			} else {
				funcoes.scrsvnom("jmae", jMae);
				if (!funcoes.camret.equals("")) {
					enviarMensagem(funcoes.camret, funcoes.msgret);
					return;
				}
			}
		}
		if (jFuncaoj.contains("ALTERACAO")) { // verificar #FUNCAO#
			jAlarm = 4;
			if (!jMae.trim().equals("")) {
				funcoes.scrsvnom("jmae", jMae);
				if (!funcoes.camret.equals("")) {
					enviarMensagem(funcoes.camret, funcoes.msgret);
					return;
				}
			}
		}
	}

	private void ValidarWsexo() {
		// Consist�ncia F00#SEXO
		if (!(jSexo >= 1 && jSexo <= 2)) {
			enviarMensagem("jsexo", "Selecione o sexo");
			return;
		}
	}

	private void ValidarWdataNasc() {
		// Consist�ncia F00#DATA_NASC
		String wData;
		String wDataNasc;
		String wDataInv;
		String wData0;
		String wData00;
		String wData000;
		int wIndex;
		String wChave = "";
		wDataInv = jdataNasc;
		wDataNasc = jdataNasc;
		wData0 = jdataNasc;
		wData00 = wData0;
		wData000 = wData00;
		wData = String.valueOf(UtilBean.obtemDataCorrente());
		if (jdataNasc.trim().equals("")) {
			enviarMensagem("jdataNasc", "Se nao houver, preencha 8 zeros");
			return;
		}
		for (wIndex = 0; wIndex <= 8; wIndex++) {
			if (Integer.parseInt(UtilBean.subStr(wData000, wIndex, 1)) != 0) {
				wChave = "Y";
				break;
			}
		}
		if (wChave.trim().equals("")) {
			if (!jdataNasc.equals("00000000")) {
				enviarMensagem("jdataNasc", "Se nao houver, preencha com zeros");
				return;
			}
		} else {
			if (Integer.parseInt(UtilBean.subStr(wDataNasc, 0, 2)) == 0 || Integer.parseInt(UtilBean.subStr(wDataNasc, 0, 2)) > 31) {
				enviarMensagem("jdataNasc", "Dia invalido");
				return;
			}
			if (Integer.parseInt(UtilBean.subStr(wDataNasc, 2, 2)) == 0 || Integer.parseInt(UtilBean.subStr(wDataNasc, 2, 2)) > 12) {
				enviarMensagem("jdataNasc", "Mes invalido");
				return;
			}
			if (Integer.parseInt(UtilBean.subStr(wDataNasc, 4, 4)) < 1800) {
				enviarMensagem("jdataNasc", " Ano invalido");
				return;
			}
			if (Integer.parseInt(UtilBean.subStr(wDataNasc, 4, 4)) >= Integer.parseInt(UtilBean.subStr(wData, 0, 4))) {
				enviarMensagem("jdataNasc", "Ano invalido");
				return;
			}
		}
	}

	private void ValidarWnaturalidade() throws Exception {
		// Consist�ncia F00#NATURALIDADE
		String wNatural;
		if (jNaturalidade.trim().equals("")) {
			enviarMensagem("jnaturalidade", "Se nao ha�, informe 1 asterisco");
			return;
		}
		wNatural = jNaturalidade;
		if (UtilBean.subStr(wNatural, 0, 1).equals("*")) {
			if (!UtilBean.subStr(wNatural, 1, 59).trim().equals("")) {
				enviarMensagem("jnaturalidade", "Informe somente 1 asterisco");
				return;
			}
		} else {
			if (UtilBean.validarMascara(UtilBean.subStr(wNatural.trim(), 0, 1), "N") || UtilBean.subStr(wNatural, 0, 1).trim().equals("") || UtilBean.subStr(wNatural, 0, 1).equals("&") || UtilBean.subStr(wNatural, 0, 1).equals("#") || UtilBean.subStr(wNatural, 0, 1).equals("^") || UtilBean.subStr(wNatural, 0, 1).equals("(") || UtilBean.subStr(wNatural, 0, 1).equals(")") || UtilBean.subStr(wNatural, 0, 1).equals("/")) {
				enviarMensagem("jnaturalidade", "Se nao ha�, informe 1 asterisco");
				return;
			}
		}
	}

	private void ValidarWufNascimento() {
		// Consist�ncia F00#UF-NASCIMENTO
		if (!jUfNascimento.trim().equals("")) {
			if (jCodMunNascimento == 0) {
				enviarMensagem("jcodmunnascimento", "Campo de preenchimento obrigatorio");
				return;
			}
			// Par�grafo: fd1()
			vwTabele.consultaCodigoTabelaChaveAlfaAcesso(9, jUfNascimento);
			if (vwTabele.registrosProcessados() == 0) {
				enviarMensagem("jufnascimento", "UF nao cadastrada no sistema");
				return;
			}
			vwTabele.fecha();
			// Par�grafo: fd2()
			if (vwTabele.consultaCodigoTabelaCodigoElemChaveAlfaAcesso(01, (long) jCodMunNascimento, jUfNascimento)) {
				jNaturalidade = vwTabele.getDescricaoElem();
			}
			vwTabele.fecha();
			if (vwTabele.registrosProcessados() == 0) {
				enviarMensagem("jcodmunnascimento", "Municipio nao pertence � UF informada");
				return;
			}
		}
	}

	private void ValidarWdocApresentado() throws Exception {
		// Consist�ncia F00#DOC-APRESENTADO
		String wDoc;
		String wChave;
		int wIndex;
		if (jDocApresentado.trim().equals("")) {
			enviarMensagem("jdocapresentado", "Se nao houver, informe 1 asterisco");
			return;
		}
		wDoc = jDocApresentado;
		if (UtilBean.subStr(wDoc, 0, 1).equals("*")) {
			if (!UtilBean.subStr(wDoc, 1, 29).trim().equals("")) {
				enviarMensagem("jdocapresentado", "Informe somente 1 asterisco");
				return;
			}
		} else {
			if (UtilBean.validarMascara(UtilBean.subStr(wDoc.trim(), 0, 1), "N") || UtilBean.subStr(wDoc, 0, 1).trim().equals("") || UtilBean.subStr(wDoc, 0, 1).equals("&") || UtilBean.subStr(wDoc, 0, 1).equals("^") || UtilBean.subStr(wDoc, 0, 1).equals("#") || UtilBean.subStr(wDoc, 0, 1).equals("(") || UtilBean.subStr(wDoc, 0, 1).equals(")") || UtilBean.subStr(wDoc, 0, 1).equals("/") || UtilBean.subStr(wDoc, 0, 1).equals("$")) {
				enviarMensagem("jdocapresentado", "Se nao houver, informe 1 asterisco");
				return;
			}
		}
	}

	private void ValidarWorgaoExpUf() throws Exception {
		// Consist�ncia F00#ORGAO-EXP-UF
		String wSsp;
		String wChave;
		int wIndex;
		wSsp = jOrgaoExpUf;
		if (jOrgaoExpUf.trim().equals("")) {
			enviarMensagem("jorgaoexpuf", "Se nao houver, informe 1 asterisco");
			return;
		}
		if (UtilBean.subStr(wSsp, 0, 1).equals("*")) {
			if (!UtilBean.subStr(wSsp, 1, 14).trim().equals("")) {
				enviarMensagem("jorgaoexpuf", "Informe somente 1 asterisco");
				return;
			}
		} else {
			if (UtilBean.validarMascara(UtilBean.subStr(wSsp.trim(), 0, 1), "N") || UtilBean.subStr(wSsp, 0, 1).trim().equals("") || UtilBean.subStr(wSsp, 0, 1).equals("#") || UtilBean.subStr(wSsp, 0, 1).equals("(") || UtilBean.subStr(wSsp, 0, 1).equals(")") || UtilBean.subStr(wSsp, 0, 1).equals("/") || UtilBean.subStr(wSsp, 0, 1).equals("&") || UtilBean.subStr(wSsp, 0, 1).equals("^") || UtilBean.subStr(wSsp, 0, 1).equals("@")) {
				enviarMensagem("jorgaoexpuf", "Se nao houver, informe 1 asterisco");
				return;
			}
		}
	}

	private void ValidarWinstrucao() {
		// Consist�ncia F00#INSTRUCAO
		if (!(jInstrucao > 0 && jInstrucao < 8)) {
			enviarMensagem("jinstrucao", "Selecione a instru��o");
			return;
		}
	}

	private void ValidarWavRua() throws Exception {
		// Consist�ncia F00#AV-RUA
		String wAvenida;
		String wChave;
		int wIndex;
		if (jAvRua.trim().equals("")) {
			enviarMensagem("javrua", "Se nao houver, informe 1 asterisco");
			return;
		}
		wAvenida = jAvRua;
		if (UtilBean.subStr(wAvenida, 0, 1).equals("*")) {
			if (!UtilBean.subStr(wAvenida, 1, 59).trim().equals("")) {
				enviarMensagem("javrua", "Informe somente 1 asterisco");
				return;
			}
		} else {
			if (UtilBean.subStr(wAvenida, 0, 1).trim().equals("") || UtilBean.validarMascara(UtilBean.subStr(wAvenida, 0, 1), "N") || UtilBean.subStr(wAvenida, 0, 1).equals("&") || UtilBean.subStr(wAvenida, 0, 1).equals("#") || UtilBean.subStr(wAvenida, 0, 1).equals("/") || UtilBean.subStr(wAvenida, 0, 1).equals("(") || UtilBean.subStr(wAvenida, 0, 1).equals(")") || UtilBean.subStr(wAvenida, 0, 1).equals("^")) {
				enviarMensagem("javrua", "Se nao houver, informe 1 asterisco");
				return;
			}
		}
	}

	private void ValidarWbairro() throws Exception {
		// Consist�ncia F00#BAIRRO
		String wBair;
		if (jBairro.trim().equals("")) {
			enviarMensagem("jbairro", "Se nao houver, informe 1 asterisco");
			return;
		}
		wBair = jBairro;
		if (UtilBean.subStr(wBair, 0, 1).equals("*")) {
			if (!UtilBean.subStr(wBair, 1, 19).trim().equals("")) {
				enviarMensagem("jbairro", "Informe somente 1 asterisco");
				return;
			}
		} else {
			if (UtilBean.subStr(wBair, 0, 1).trim().equals("") || UtilBean.validarMascara(UtilBean.subStr(wBair, 0, 1), "N") || UtilBean.subStr(wBair, 0, 1).equals("#") || UtilBean.subStr(wBair, 0, 1).equals("(") || UtilBean.subStr(wBair, 0, 1).equals(")") || UtilBean.subStr(wBair, 0, 1).equals("&") || UtilBean.subStr(wBair, 0, 1).equals("^") || UtilBean.subStr(wBair, 0, 1).equals("#") || UtilBean.subStr(wBair, 0, 1).equals("@")) {
				enviarMensagem("jbairro", "Se nao houver, informe 1 asterisco");
				return;
			}
		}
	}

	private void ValidarWufEndereco() {
		// Consist�ncia F00#UF-ENDERECO
		if (!jUfEndereco.trim().equals("")) {
			if (jMunEndereco == 0) {
				enviarMensagem("jmunendereco", "Informe o municipio em que mora");
				return;
			}
			// Par�grafo: fd0()
			vwTabele.consultaCodigoTabelaChaveAlfaAcesso(9, jUfEndereco);
			if (vwTabele.registrosProcessados() == 0) {
				enviarMensagem("jufendereco", "UF nao cadastrada no sistema");
				return;
			}
			vwTabele.fecha();
			// Par�grafo: fd2()
			vwTabele.consultaCodigoTabelaCodigoElemChaveAlfaAcesso(01, (long) jMunEndereco, jUfEndereco);
			vwTabele.fecha();
			if (vwTabele.registrosProcessados() == 0) {
				enviarMensagem("jmunendereco", "Municipio nao pertence � UF informada");
				return;
			}
		}
	}

	private void ValidarjStatus() {
		// Consist�ncia F00#STATUS
		if (!((jStatus.equals("0") || jStatus.equals("1") || jStatus.equals("2") || jStatus.equals("3")))) {
			enviarMensagem("jstatus", "Selecione o status");
			return;
		}
	}

	public String getJversaoj() {
		return jVersaoj;
	}

	public void setJversaoj(String jVersaoj) {
		this.jVersaoj = jVersaoj;
	}

	public String getDataCorrente() {
		return dataCorrente;
	}

	public void setDataCorrente(String dataCorrente) {
		this.dataCorrente = dataCorrente;
	}

	public String getJfuncaoj() {
		return jFuncaoj;
	}

	public void setJfuncaoj(String jFuncaoj) {
		this.jFuncaoj = jFuncaoj;
	}

	public String getJchave() {
		return jChave;
	}

	public void setJchave(String jChave) {
		this.jChave = jChave;
	}

	public int getJalarm() {
		return jAlarm;
	}

	public void setJalarm(int jAlarm) {
		this.jAlarm = jAlarm;
	}

	public String getJdelegacia() {
		return jDelegacia;
	}

	public void setJdelegacia(String jDelegacia) {
		this.jDelegacia = jDelegacia;
	}

	public String getJdescmunicipio() {
		return jDescMunicipio;
	}

	public void setJdescmunicipio(String jDescMunicipio) {
		this.jDescMunicipio = jDescMunicipio;
	}

	public int getJmunicipio() {
		return jMunicipio;
	}

	public void setJmunicipio(int jMunicipio) {
		this.jMunicipio = jMunicipio;
	}

	public String getJufreggeral() {
		return jUfRegGeral;
	}

	public void setJufreggeral(String jUfRegGeral) {
		this.jUfRegGeral = jUfRegGeral;
	}

	public long getJregGeral() {
		return jregGeral;
	}

	public void setJregGeral(long jregGeral) {
		this.jregGeral = jregGeral;
	}

	public String getJdataregistro() {
		return jDataRegistro;
	}

	public void setJdataregistro(String jDataRegistro) {
		this.jDataRegistro = jDataRegistro;
	}

	public long getJnoautos() {
		return jNoAutos;
	}

	public void setJnoautos(long jNoAutos) {
		this.jNoAutos = jNoAutos;
	}

	public String getJdataatuacao() {
		return jDataAtuacao;
	}

	public void setJdataatuacao(String jDataAtuacao) {
		this.jDataAtuacao = jDataAtuacao;
	}

	public long getJidentidade() {
		return jIdentidade;
	}

	public void setJidentidade(long jIdentidade) {
		this.jIdentidade = jIdentidade;
	}

	public String getJnomecompleto() {
		return jNomeCompleto;
	}

	public void setJnomecompleto(String jNomeCompleto) {
		this.jNomeCompleto = jNomeCompleto;
	}

	public String getJnomeanterior() {
		return jNomeAnterior;
	}

	public void setJnomeanterior(String jNomeAnterior) {
		this.jNomeAnterior = jNomeAnterior;
	}

	public String getJpai() {
		return jPai;
	}

	public void setJpai(String jPai) {
		this.jPai = jPai;
	}

	public String getJmae() {
		return jMae;
	}

	public void setJmae(String jMae) {
		this.jMae = jMae;
	}

	public int getJsexo() {
		return jSexo;
	}

	public void setJsexo(int jSexo) {
		this.jSexo = jSexo;
	}

	public String getJdataNasc() {
		return jdataNasc;
	}

	public void setJdataNasc(String jdataNasc) {
		this.jdataNasc = jdataNasc;
	}

	public long getJcpf() {
		return jCpf;
	}

	public void setJcpf(long jCpf) {
		this.jCpf = jCpf;
	}

	public String getJnaturalidade() {
		return jNaturalidade;
	}

	public void setJnaturalidade(String jNaturalidade) {
		this.jNaturalidade = jNaturalidade;
	}

	public int getJcodmunnascimento() {
		return jCodMunNascimento;
	}

	public void setJcodmunnascimento(int jCodMunNascimento) {
		this.jCodMunNascimento = jCodMunNascimento;
	}

	public String getJufnascimento() {
		return jUfNascimento;
	}

	public void setJufnascimento(String jUfNascimento) {
		this.jUfNascimento = jUfNascimento;
	}

	public String getJdocapresentado() {
		return jDocApresentado;
	}

	public void setJdocapresentado(String jDocApresentado) {
		this.jDocApresentado = jDocApresentado;
	}

	public long getJnumdocapresentado() {
		return jNumDocApresentado;
	}

	public void setJnumdocapresentado(long jNumDocApresentado) {
		this.jNumDocApresentado = jNumDocApresentado;
	}

	public String getJorgaoexpuf() {
		return jOrgaoExpUf;
	}

	public void setJorgaoexpuf(String jOrgaoExpUf) {
		this.jOrgaoExpUf = jOrgaoExpUf;
	}

	public String getJprofissao() {
		return jProfissao;
	}

	public void setJprofissao(String jProfissao) {
		this.jProfissao = jProfissao;
	}

	public int getJinstrucao() {
		return jInstrucao;
	}

	public void setJinstrucao(int jInstrucao) {
		this.jInstrucao = jInstrucao;
	}

	public String getJavrua() {
		return jAvRua;
	}

	public void setJavrua(String jAvRua) {
		this.jAvRua = jAvRua;
	}

	public int getJnumero() {
		return jNumero;
	}

	public void setJnumero(int jNumero) {
		this.jNumero = jNumero;
	}

	public String getJbairro() {
		return jBairro;
	}

	public void setJbairro(String jBairro) {
		this.jBairro = jBairro;
	}

	public int getJmunendereco() {
		return jMunEndereco;
	}

	public void setJmunendereco(int jMunEndereco) {
		this.jMunEndereco = jMunEndereco;
	}

	public String getJufendereco() {
		return jUfEndereco;
	}

	public void setJufendereco(String jUfEndereco) {
		this.jUfEndereco = jUfEndereco;
	}

	public int getJcep() {
		return jCep;
	}

	public void setJcep(int jCep) {
		this.jCep = jCep;
	}

	public String getJcomplemento() {
		return jComplemento;
	}

	public void setJcomplemento(String jComplemento) {
		this.jComplemento = jComplemento;
	}

	public String getJstatus() {
		return jStatus;
	}

	public void setJstatus(String jStatus) {
		this.jStatus = jStatus;
	}

	public String getJdescreg() {
		return jDescreg;
	}

	public void setJdescreg(String jDescreg) {
		this.jDescreg = jDescreg;
	}

	public String getJempresaj() {
		return jEmpresaj;
	}

	public void setJempresaj(String jEmpresaj) {
		this.jEmpresaj = jEmpresaj;
	}

	public String getJprogramaj() {
		return jProgramaj;
	}

	public void setJprogramaj(String jProgramaj) {
		this.jProgramaj = jProgramaj;
	}

	public String[] getJalcunha() {
		return jAlcunha;
	}

	public void setJalcunha(String[] jAlcunha) {
		this.jAlcunha = jAlcunha;
	}

	public String getJalcunha(int index) {
		return jAlcunha[index];
	}

	public void setJalcunha(int index, String jAlcunha) {
		this.jAlcunha[index] = jAlcunha;
	}

	public String getHoraCorrente() {
		return horaCorrente;
	}

	public void setHoraCorrente(String horaCorrente) {
		this.horaCorrente = horaCorrente;
	}

	public String getFuncao() {
		return funcao;
	}

	public void setFuncao(String funcao) {
		this.funcao = funcao;
	}

	public String getCampofocus() {
		return campofocus;
	}

	public void setCampofocus(String campofocus) {
		this.campofocus = campofocus;
	}

	public String getNavegar() {
		return navegar;
	}

	public void setNavegar(String navegar) {
		this.navegar = navegar;
	}

	public String getMensagem() {
		return mensagem;
	}

	public void setMensagem(String mensagem) {
		this.mensagem = mensagem;
	}

	public void setMensagemSaida(String mensagem) {
		this.mensagem = mensagem;
	}

	public boolean getEnviada() {
		return this.enviada;
	}

	public void setSessao(Sessao sessao) {
		this.sessao = sessao;
	}
}
